package com.wyh.mapper.g3mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wyh.domain.dto.g3dto.G3OrganizationDto;
import com.wyh.domain.po.g3po.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 项目表 Mapper 接口
 * </p>
 *
 * @author 唐书亮
 * @since 2024-05-21
 */
@Mapper
public interface G3ProjectMapper extends BaseMapper<G3Project> {

    Integer selectmanagedEstate(@Param("organization") G3OrganizationDto organization);

    Integer selectmanagedArea(@Param("organization") G3OrganizationDto organization);

    Integer selectCustomerCount(@Param("organization") G3OrganizationDto organization);

    Integer selectHouseCount(@Param("organization") G3OrganizationDto organization);

    Integer selectParkingSpaceCount(@Param("organization") G3OrganizationDto organization);

    Double selectCurrentMonthCollectionAmount(@Param("organization") G3OrganizationDto organization);

    Double selectLastMonthCollectionAmount(@Param("organization") G3OrganizationDto organization);

    Double selectCurrentMonthArrearsAmount(@Param("organization") G3OrganizationDto g3OrganizationDto);

    Double selectLastMonthArrearsAmount(@Param("organization") G3OrganizationDto g3OrganizationDto);

    Integer selectCurrentMonthArrearsHouseholds(@Param("organization") G3OrganizationDto g3OrganizationDto);

    Integer selectLastMonthArrearsHouseholds(@Param("organization") G3OrganizationDto g3OrganizationDto);

    Double selectCurrentMonthInvoiceAmount(@Param("organization") G3OrganizationDto g3OrganizationDto);

    Double selectLastMonthInvoiceAmount(@Param("organization") G3OrganizationDto g3OrganizationDto);

    Double selectPropertyFee(@Param("organization") G3OrganizationDto g3OrganizationDto);

    Double selectWaterAndElectricityFee(@Param("organization") G3OrganizationDto g3OrganizationDto);

    Double selectServiceFee(@Param("organization") G3OrganizationDto g3OrganizationDto);

    Double selectParkingFee(@Param("organization") G3OrganizationDto g3OrganizationDto);

    Double selectIncomeStatistics(@Param("organization") G3OrganizationDto g3OrganizationDto);

    Double selectAdvertisingFee(@Param("organization") G3OrganizationDto g3OrganizationDto);

    List<ChargeProjectRate> selectChargeRate(@Param("organization") G3OrganizationDto g3OrganizationDto);

    List<ChargeProjectRate> selectLastChargeRate(@Param("organization") G3OrganizationDto g3OrganizationDto);

    List<AllChargeRate> selectAllChargeRate(@Param("organization") G3OrganizationDto g3OrganizationDto);

    List<G3Project> findPark();
    List<G3Project> findFloor();
    List<G3Organization> findorganization();

    List<Integer> findAllOrganizationId(@Param("id") List ids);
}
